Spinal cord data#

Morphometry#

Code imports#

# Python imports 
from IPython.display import clear_output
from pathlib import Path
import numpy as np

import pandas as pd
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 1000)
pd.set_option('display.colheader_justify', 'center')
pd.set_option('display.precision', 3)

# Import custom tools
from tools.data import Data
from tools.plot import Plot
from tools.stats import Stats

Download data#

data_type = 'spine'
release_version = 'latest'

dataset = Data(data_type)
dataset.download(release_version)
--2022-09-13 12:55:04--  https://github.com/courtois-neuromod/anat-processing/releases/download//r20220804/spinalcord_results.zip
Resolving github.com (github.com)... 140.82.112.4
Connecting to github.com (github.com)|140.82.112.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/333825187/c7568fab-84d3-45d2-950a-09ca065b1495?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220913%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220913T125504Z&X-Amz-Expires=300&X-Amz-Signature=7231f086da7ab6e6be4d5ac1abb37119aef176d391aae2b807711a8e9cd3bd85&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=333825187&response-content-disposition=attachment%3B%20filename%3Dspinalcord_results.zip&response-content-type=application%2Foctet-stream [following]
--2022-09-13 12:55:04--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/333825187/c7568fab-84d3-45d2-950a-09ca065b1495?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220913%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220913T125504Z&X-Amz-Expires=300&X-Amz-Signature=7231f086da7ab6e6be4d5ac1abb37119aef176d391aae2b807711a8e9cd3bd85&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=333825187&response-content-disposition=attachment%3B%20filename%3Dspinalcord_results.zip&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.109.133, 185.199.108.133, 185.199.111.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 47607 (46K) [application/octet-stream]
Saving to: ‘spinalcord_results.zip’

     0K .......... .......... .......... .......... ......    100% 9.38M=0.005s

2022-09-13 12:55:04 (9.38 MB/s) - ‘spinalcord_results.zip’ saved [47607/47607]
Archive:  spinalcord_results.zip
  inflating: data/spine/DWI_RD.csv   
  inflating: data/spine/DWI_FA.csv   
  inflating: data/spine/csa-SC_T2w.csv  
  inflating: data/spine/DWI_MD.csv   
  inflating: data/spine/MTR.csv      
  inflating: data/spine/MTsat.csv    
  inflating: data/spine/csa-GM_T2s.csv  
  inflating: data/spine/csa-SC_T1w.csv  
  inflating: data/spine/T1.csv       

Load data plot it#

dataset.num_sessions
dataset.load()

fig_spine = Plot(dataset, plot_name = 'spine-wm')

fig_spine.title = 'WM spinal cord morphometry'

White matter#

# If you're running this notebook in a Jupyter Notebook (eg, on MyBinder), change 'jupyter-book' to 'notebook'
fig_spine.display('jupyter-book', fig_id = 'spine-csa-wm')

Grey matter#

fig_spine = Plot(dataset, plot_name = 'spine-gm')

fig_spine.title = 'GM spinal cord morphometry'
# If you're running this notebook in a Jupyter Notebook (eg, on MyBinder), change 'jupyter-book' to 'notebook'
fig_spine.display('jupyter-book', fig_id = 'spine-csa-gm')

Statistics#

stats_csa = Stats(dataset)
stats_csa.build_df()
stats_csa.build_stats_table()
display(stats_csa.stats_table)
WM area (T1w) WM area (T2w) GM area (T2w)
intrasubject CoV mean 0.045 0.023 0.103
intrasubject CoV std 0.033 0.017 0.104
intersubject mean CoV 0.051 0.097 0.047

Quantitative MRI#

White matter#

data_type = 'qmri'
release_version = 'latest'

dataset = Data(data_type)
dataset.download(release_version)
Archive:  spinalcord_results.zip
  inflating: data/qmri/DWI_RD.csv    
  inflating: data/qmri/DWI_FA.csv    
  inflating: data/qmri/csa-SC_T2w.csv  
  inflating: data/qmri/DWI_MD.csv    
  inflating: data/qmri/MTR.csv       
  inflating: data/qmri/MTsat.csv     
  inflating: data/qmri/csa-GM_T2s.csv  
  inflating: data/qmri/csa-SC_T1w.csv  
  inflating: data/qmri/T1.csv        
--2022-09-13 12:55:05--  https://github.com/courtois-neuromod/anat-processing/releases/download//r20220804/spinalcord_results.zip
Resolving github.com (github.com)... 140.82.112.4
Connecting to github.com (github.com)|140.82.112.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/333825187/c7568fab-84d3-45d2-950a-09ca065b1495?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220913%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220913T125505Z&X-Amz-Expires=300&X-Amz-Signature=7d19f8bdca68edc66aab92f5542b3d0c979ef517919904fb0b8c535a0a8169cf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=333825187&response-content-disposition=attachment%3B%20filename%3Dspinalcord_results.zip&response-content-type=application%2Foctet-stream [following]
--2022-09-13 12:55:05--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/333825187/c7568fab-84d3-45d2-950a-09ca065b1495?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220913%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220913T125505Z&X-Amz-Expires=300&X-Amz-Signature=7d19f8bdca68edc66aab92f5542b3d0c979ef517919904fb0b8c535a0a8169cf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=333825187&response-content-disposition=attachment%3B%20filename%3Dspinalcord_results.zip&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.109.133, 185.199.108.133, 185.199.111.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 47607 (46K) [application/octet-stream]
Saving to: ‘spinalcord_results.zip’

     0K .......... .......... .......... .......... ......    100% 9.60M=0.005s

2022-09-13 12:55:05 (9.60 MB/s) - ‘spinalcord_results.zip’ saved [47607/47607]
dataset.load()
fig_spine = Plot(dataset, plot_name = 'spine-2')
fig_spine.title = 'Spinal cord qMRI measures'
# If you're running this notebook in a Jupyter Notebook (eg, on MyBinder), change 'jupyter-book' to 'notebook'
fig_spine.display('jupyter-book', fig_id = 'spine-qmri-wm')

Statistics#

stats_qmri = Stats(dataset)
stats_qmri.build_df()
stats_qmri.build_stats_table()
display(stats_qmri.stats_table)
FA (DWI) MD (DWI) RD (DWI) MTR MTsat T1 (MTsat)
intrasubject CoV mean 0.081 0.099 0.112 0.051 0.079 0.064
intrasubject CoV std 0.052 0.065 0.032 0.052 0.049 0.035
intersubject mean CoV 0.046 0.043 0.082 0.046 0.04 0.079